{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "部分代码参考自知乎文章：[利用500W条微博语料对评论进行情感分析](https://zhuanlan.zhihu.com/p/30061051),语料库见文章内分享链接"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import mysql.connector\n",
    "\n",
    "mydb = mysql.connector.connect(\n",
    "  host=\"localhost\",\n",
    "  user=\"root\",\n",
    "  passwd=\"yourpassword\",\n",
    "  database=\"TEST\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "mycursor = mydb.cursor()\n",
    "mycursor.execute(\" delete from weibo where text=NULL\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "mycursor = mydb.cursor()\n",
    "mycursor.execute(\" delete from weibo where text='Repost'\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "mycursor = mydb.cursor()\n",
    "mycursor.execute(\" delete from weibo where text=''\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入所需的库\n",
    "import re\n",
    "from snownlp import sentiment\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import pymysql\n",
    "from snownlp import SnowNLP\n",
    "from snownlp import sentiment\n",
    "from snownlp.sentiment import Sentiment\n",
    "import matplotlib.pyplot as plt\n",
    "from tqdm import tqdm\n",
    "plt.style.use('ggplot')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "conn = pymysql.connect(host='localhost', user='root', password='yourpassword', charset=\"utf8\",use_unicode=False)  # 连接服务器\n",
    "with conn:\n",
    "    cur = conn.cursor()\n",
    "    cur.execute(\"SELECT * FROM test.weibo WHERE weiboId < '%d'\" % 6000000)\n",
    "    rows = cur.fetchall()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "comment = []\n",
    "for row in rows:\n",
    "    row = list(row)\n",
    "    comment.append(row[18])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "# 按文章的说法，初步筛选语料，大于0.8的归入积极，小于0.3的归入消极。\n",
    "def train_model(texts):\n",
    "    for li in tqdm(texts):\n",
    "        comm = li.decode('utf-8')\n",
    "        text = re.sub(r'(?:回复)?(?://)?@[\\w\\u2E80-\\u9FFF]+:?|\\[\\w+\\]', ',',comm)\n",
    "        score = SnowNLP(text)\n",
    "        if score.sentiments > 0.8:\n",
    "            with open('pos.txt', mode='a', encoding='utf-8') as g:\n",
    "                g.writelines(comm +\"\\n\")\n",
    "        elif score.sentiments < 0.3:\n",
    "            with open('neg.txt', mode='a', encoding='utf-8') as f:\n",
    "                f.writelines(comm + \"\\n\")\n",
    "        else:\n",
    "            pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 17h 25min 2s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "train_model(comment)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 12h 46min 51s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "# 将上面筛选出的语料重新进行训练，\n",
    "\n",
    "sentiment.train('neg.txt', 'pos.txt')\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "sentiment.save('sentiment.marshal')    # 保存新模型后替换默认模型或者讲路径指向新模型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "六小龄童\n",
      "0.8781921115138102\n"
     ]
    }
   ],
   "source": [
    "# 中文语料库训练出来很奇怪，名字也带有情感，整体情绪偏积极\n",
    "li = '六小龄童'\n",
    "text = re.sub(r'(?:回复)?(?://)?@[\\w\\u2E80-\\u9FFF]+:?|\\[\\w+\\]', '',li)\n",
    "print(text)\n",
    "s = SnowNLP(text)\n",
    "print(s.sentiments)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型训练完成，导入自己爬的微博数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 选取了北京重度雾霾的三天作为分析数据\n",
    "comment = pd.read_csv('comment20180731_0802.csv', encoding='utf-8')\n",
    "tweet = pd.read_csv('tweet20180731_0802.csv', encoding='utf-8')\n",
    "\n",
    "# 标记出发自北京的评论\n",
    "comment['merge_id'] = comment['weibo_id']\n",
    "tweet['merge_id'] = tweet['_id']\n",
    "merge = comment.merge(tweet, on='merge_id')\n",
    "merge['is_beijing'] = merge['province'].map(lambda x: 1 if x == '北京' else 0)\n",
    "\n",
    "# 计算评论发出的时间距离微博发出的时间间隔\n",
    "merge['comment_time'] = merge['created_at_x'].map(lambda x: datetime.datetime(int(x[0:4]),int(x[5:7]),int(x[8:10]),int(x[11:13]),int(x[14:16])))\n",
    "merge['weibo_time'] = merge['created_at_y'].map(lambda x: datetime.datetime(int(x[0:4]),int(x[5:7]),int(x[8:10]),int(x[11:13]),int(x[14:16])))\n",
    "merge['time_interval'] = merge['comment_time'] - merge['weibo_time']\n",
    "\n",
    "# 选择微博发出3天内的用户评论\n",
    "merge['day3'] = merge['time_interval'].map(lambda x: 1 if x.days<3 else 0)\n",
    "day3 = merge[merge['day3']==1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>_id_x</th>\n",
       "      <th>weibo_id</th>\n",
       "      <th>comment_user_id</th>\n",
       "      <th>created_at_x</th>\n",
       "      <th>content_x</th>\n",
       "      <th>like_num_x</th>\n",
       "      <th>crawl_time_x</th>\n",
       "      <th>province</th>\n",
       "      <th>city</th>\n",
       "      <th>merge_id</th>\n",
       "      <th>...</th>\n",
       "      <th>created_at_y</th>\n",
       "      <th>like_num_y</th>\n",
       "      <th>repost_num</th>\n",
       "      <th>comment_num</th>\n",
       "      <th>content_y</th>\n",
       "      <th>is_beijing</th>\n",
       "      <th>comment_time</th>\n",
       "      <th>weibo_time</th>\n",
       "      <th>time_interval</th>\n",
       "      <th>day3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>C_4312383817875910</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>5347302211</td>\n",
       "      <td>2018-12-01 11:44:45</td>\n",
       "      <td>ppt</td>\n",
       "      <td>2</td>\n",
       "      <td>1551036368</td>\n",
       "      <td>山东</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>...</td>\n",
       "      <td>2018-12-01 11:42:14</td>\n",
       "      <td>72</td>\n",
       "      <td>6</td>\n",
       "      <td>21</td>\n",
       "      <td>2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...</td>\n",
       "      <td>0</td>\n",
       "      <td>2018-12-01 11:44:00</td>\n",
       "      <td>2018-12-01 11:42:00</td>\n",
       "      <td>00:02:00</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>C_4312383977227063</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>5873610688</td>\n",
       "      <td>2018-12-01 11:45:22</td>\n",
       "      <td>冲鸭</td>\n",
       "      <td>1</td>\n",
       "      <td>1551036368</td>\n",
       "      <td>其他</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>...</td>\n",
       "      <td>2018-12-01 11:42:14</td>\n",
       "      <td>72</td>\n",
       "      <td>6</td>\n",
       "      <td>21</td>\n",
       "      <td>2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...</td>\n",
       "      <td>0</td>\n",
       "      <td>2018-12-01 11:45:00</td>\n",
       "      <td>2018-12-01 11:42:00</td>\n",
       "      <td>00:03:00</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>C_4312384254371170</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>6520365853</td>\n",
       "      <td>2018-12-01 11:46:29</td>\n",
       "      <td>威少今天应该又是三双吧？</td>\n",
       "      <td>1</td>\n",
       "      <td>1551036368</td>\n",
       "      <td>广东</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>...</td>\n",
       "      <td>2018-12-01 11:42:14</td>\n",
       "      <td>72</td>\n",
       "      <td>6</td>\n",
       "      <td>21</td>\n",
       "      <td>2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...</td>\n",
       "      <td>0</td>\n",
       "      <td>2018-12-01 11:46:00</td>\n",
       "      <td>2018-12-01 11:42:00</td>\n",
       "      <td>00:04:00</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>C_4312385990533122</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>6111811717</td>\n",
       "      <td>2018-12-01 11:53:23</td>\n",
       "      <td>差一个篮板好可惜</td>\n",
       "      <td>0</td>\n",
       "      <td>1551036368</td>\n",
       "      <td>其他</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>...</td>\n",
       "      <td>2018-12-01 11:42:14</td>\n",
       "      <td>72</td>\n",
       "      <td>6</td>\n",
       "      <td>21</td>\n",
       "      <td>2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...</td>\n",
       "      <td>0</td>\n",
       "      <td>2018-12-01 11:53:00</td>\n",
       "      <td>2018-12-01 11:42:00</td>\n",
       "      <td>00:11:00</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>C_4312387069145212</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>6077850447</td>\n",
       "      <td>2018-12-01 11:57:39</td>\n",
       "      <td>雷霆总冠军</td>\n",
       "      <td>0</td>\n",
       "      <td>1551036368</td>\n",
       "      <td>四川</td>\n",
       "      <td>成都</td>\n",
       "      <td>2769897145_H5c8SjzsG</td>\n",
       "      <td>...</td>\n",
       "      <td>2018-12-01 11:42:14</td>\n",
       "      <td>72</td>\n",
       "      <td>6</td>\n",
       "      <td>21</td>\n",
       "      <td>2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...</td>\n",
       "      <td>0</td>\n",
       "      <td>2018-12-01 11:57:00</td>\n",
       "      <td>2018-12-01 11:42:00</td>\n",
       "      <td>00:15:00</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                _id_x              weibo_id  comment_user_id  \\\n",
       "0  C_4312383817875910  2769897145_H5c8SjzsG       5347302211   \n",
       "1  C_4312383977227063  2769897145_H5c8SjzsG       5873610688   \n",
       "2  C_4312384254371170  2769897145_H5c8SjzsG       6520365853   \n",
       "3  C_4312385990533122  2769897145_H5c8SjzsG       6111811717   \n",
       "4  C_4312387069145212  2769897145_H5c8SjzsG       6077850447   \n",
       "\n",
       "          created_at_x     content_x  like_num_x  crawl_time_x province city  \\\n",
       "0  2018-12-01 11:44:45           ppt           2    1551036368       山东  NaN   \n",
       "1  2018-12-01 11:45:22            冲鸭           1    1551036368       其他  NaN   \n",
       "2  2018-12-01 11:46:29  威少今天应该又是三双吧？           1    1551036368       广东  NaN   \n",
       "3  2018-12-01 11:53:23      差一个篮板好可惜           0    1551036368       其他  NaN   \n",
       "4  2018-12-01 11:57:39         雷霆总冠军           0    1551036368       四川   成都   \n",
       "\n",
       "               merge_id  ...          created_at_y  like_num_y repost_num  \\\n",
       "0  2769897145_H5c8SjzsG  ...   2018-12-01 11:42:14          72          6   \n",
       "1  2769897145_H5c8SjzsG  ...   2018-12-01 11:42:14          72          6   \n",
       "2  2769897145_H5c8SjzsG  ...   2018-12-01 11:42:14          72          6   \n",
       "3  2769897145_H5c8SjzsG  ...   2018-12-01 11:42:14          72          6   \n",
       "4  2769897145_H5c8SjzsG  ...   2018-12-01 11:42:14          72          6   \n",
       "\n",
       "   comment_num                                          content_y  is_beijing  \\\n",
       "0           21  2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...           0   \n",
       "1           21  2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...           0   \n",
       "2           21  2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...           0   \n",
       "3           21  2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...           0   \n",
       "4           21  2018.12.1 雷霆VS老鹰 全场高清视频集锦。雷霆喜迎2连胜，43.9%的三分命中率命...           0   \n",
       "\n",
       "         comment_time          weibo_time time_interval  day3  \n",
       "0 2018-12-01 11:44:00 2018-12-01 11:42:00      00:02:00     1  \n",
       "1 2018-12-01 11:45:00 2018-12-01 11:42:00      00:03:00     1  \n",
       "2 2018-12-01 11:46:00 2018-12-01 11:42:00      00:04:00     1  \n",
       "3 2018-12-01 11:53:00 2018-12-01 11:42:00      00:11:00     1  \n",
       "4 2018-12-01 11:57:00 2018-12-01 11:42:00      00:15:00     1  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merge.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义一个函数计算评论的情绪分数\n",
    "\n",
    "def snowanalysis(self):\n",
    "    try:\n",
    "        num = len(self)\n",
    "    except:\n",
    "        num = self.size\n",
    "        \n",
    "    sentimentslist = []\n",
    "    for i in range(num):\n",
    "        li = self[i]\n",
    "        if li:   # 有些是空白评论，需要跳过     \n",
    "            # 正则表达式替换掉回复评论的开头“回复@……”\n",
    "            li = str(li)  # 统一转为字符串避免报错\n",
    "            \n",
    "            if li != 'nan':    # 存在一部分的空白评论\n",
    "                text = re.sub(r'(?:回复)?(?://)?@[\\w\\u2E80-\\u9FFF]+:?|\\[\\w+\\]', '', li)\n",
    "                # 中英文标点符号似乎带有情感，全部替换掉\n",
    "                r='[’！？：；【】，《》!\"#$%&\\'()（）“”…*+,-./:;<=>?@[\\\\]^_`{|}~]+'\n",
    "                text = re.sub(r, '', text)\n",
    "                # 给该条评论打分\n",
    "                if text:\n",
    "                    s = SnowNLP(text)\n",
    "#                     # 看看预测为中性的评论内容\n",
    "#                     if 0.45 < s.sentiments < 0.55:\n",
    "#                         print(text)\n",
    "#                         print('情绪分数：', s.sentiments)\n",
    "\n",
    "                    # 为了做频率直方图，把分数保存在numpy数组里\n",
    "                    sentimentslist.append(s.sentiments)\n",
    "                    score = np.array(sentimentslist)\n",
    "    \n",
    "    # 对分值进行归一化（尝试修正模型的偏移，非必须）\n",
    "    #score = score*0.5/0.7244678128321579\n",
    "    #score = (score - score.min()) / (score.max() - score.min())\n",
    "    \n",
    "    plt.subplot(121)\n",
    "    plt.hist(score, bins=np.arange(0, 1, 0.02), density=True)\n",
    "    plt.subplot(122)\n",
    "    plt.boxplot(score)\n",
    "    plt.show()\n",
    "    # 返回分值的列表\n",
    "    return score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "comment_bj = list(merge['content_x'][merge['is_beijing'] == 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "merge['no_haze'] = merge['province'].map(lambda x: 1 if x not in ['北京','其他','海外','河北'] else 0)\n",
    "comment_gd = list(merge['content_x'][merge['no_haze']==1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(bj, density=True, bins=np.arange(0, 1.01, 0.1), color='orange')\n",
    "plt.hist(gd, density=True, bins=np.arange(0, 1.01, 0.1), color='green', alpha = 0.5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.boxplot([bj, gd])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [],
   "source": [
    "comment = pd.read_csv('comment20181201_03.csv', encoding='utf-8')\n",
    "tweet = pd.read_csv('tweet20181201_03.csv', encoding='utf-8')\n",
    "\n",
    "comment['merge_id'] = comment['weibo_id']\n",
    "tweet['merge_id'] = tweet['_id']\n",
    "merge = comment.merge(tweet, on='merge_id')\n",
    "merge['is_beijing'] = merge['province'].map(lambda x: 1 if x == '北京' else 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.06965724902850201"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s = SnowNLP('回复@_你要梦什么:事情发生在东北，就有很多人说东北这个那个的，真是无语的地域黑。还有钱外露，钱放在自己家里露给你看的啊？')\n",
    "s.sentiments"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "comment_bj = list(day3['content_x'][day3['is_beijing'] == 1])\n",
    "comment_gd = list(day3['content_x'][day3['province'] == '广东'])\n",
    "comment_sh = list(day3['content_x'][day3['province'] == '上海'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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q1XsudEccpwXPD09TSon292a2dnZCA8PR7t27dC6des803U6HWxtbQEAzZs3R05ODu7evStXeERERESKIEtyJoTA4sWL4eXlhW7duuVb5vbt2xBCAAAuXboEg8EAR0dHOcIjIiIiUgyTftZMTk7G33//jfv378Pe3h7VqlUr0m+sFy5cwP79+1G1alVMmjQJAPD6669LXYGdO3fGkSNHsGPHDqjValhbWyM0NBQqlcqMVSIiIiJ6cRWYnGVnZyMyMhI7d+5EUlISKlasCFtbW2RmZiIxMREVKlRAp06doNfrodEUnuPVr18fP/74Y6FlQkJCEBISYt5aEBEREZUSBWZVkyZNQqNGjfDWW2+hTp06sLL63y+gBoMBly5dwoEDBzB58mTMmTNHlmCJiIiISrsCk7Np06bB2dk532lWVlaoW7cu6taty4v2iYiIiIpRgTcEFJSYAcDdu3eli/ednJyKPyoiIiKiMqpIzzmLi4vDggULkJOTg+zsbAwfPhx+fn6Wio2IiIiozCk0OcvMzJSePQYAP//8Mz799FOUL18e169fxxdffMHkjIiIiKgYFfqcs7CwMBw5ckQaVqvVuH37NnJycpCSkvLMuzSJiIiIqGgKza7CwsKwbt067NmzB0OHDsXAgQOxePFiXLt2DR4eHhg9erRccRIRERGVCYUmZzqdDsOHD8elS5ewcOFCNG7cGJ9++mmpetEpERERkZI883dJIQQqVKiAadOmYceOHfjoo4/Qr18/NGvWTI746AXWct2Skg6hYM2nlXQEL6R1By8r9mXPA0s6ACKiYlJocnb48GEsW7YMGo0GVlZWGDt2LN5//3388MMP2LVrF4YOHQo3Nze5YiUiIiIq9Qq9IWDlypUICwvD999/j6lTp2L9+vUoV64cQkND0blzZ8ycOVOuOImIiIjKhEJ7zrRaLdRqNQBApVLB2tpamubj4wNvb2/LRkdERERUxhSanI0cORLffPMNHj58CGdnZ4wYMcJ4Zj5Kg4iIiKhYFZpdNW7cGLNnz5YrFiIiIqIyr8Brzq5evWrSAkwtR0RERETPVmDP2fLly6HT6dCuXTt4e3vD1dVVmpaWloa4uDjs378fmZmZ+PTTT2UJloiIiKi0KzA5+/zzz3HixAns3LkTixcvhpWVFezs7PDgwQMIIdC4cWMEBwejefPmcsZLREREVKoV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cxYYGIgPPvigwOknT55EYmIi5s2bh7feegvLli2TIywiIiIixZElOfP29oaDg0OB06OiohAQEACVSoW6devi/v37SEtLkyM0IiIiIkVRxDVnqampcHd3l4bd3NyQmppaghERERERlQxZrjl7FiFEnnEqlSrfspGRkYiMjAQAzJgxwyips5RbKhW0Wq3F61EyFduAbQC2AcA2ANgGANsAKH1tYE4+odFoLJKHKCI5c3NzQ3JysjSckpICFxeXfMvq9Xro9Xpp+Mn5LEUIgaysLIvXo2RarZZtwDZgG4BtALANALYBUPrawJx8wt3dvUjzeXp6mlROET9r+vr6Yv/+/RBC4OLFi9DpdAUmZ0RERESlmSw9Z9988w3i4uKQnp6OUaNGoU+fPsjOzgYAdO7cGc2aNUN0dDTGjx8Pa2trjBkzRo6wiIiIiBRHluQsNDS00OkqlQrDh5/9JmMAABJoSURBVA+XIxQiIiIiRVPEz5pERERE9BiTMyIiIiIFYXJGREREpCBMzoiIiIgUhMkZERERkYIwOSMiIiJSECZnRERERArC5IyIiIhIQZicERERESkIkzMiIiIiBWFyRkRERKQgTM6IiIiIFITJGREREZGCMDkjIiIiUhAmZ0REREQKwuSMiIiISEGYnBEREREpCJMzIiIiIgVhckZERESkIEzOiIiIiBSEyRkRERGRgjA5IyIiIlIQJmdERERECsLkjIiIiEhBmJwRERERKQiTMyIiIiIFYXJGREREpCBMzoiIiIgUhMkZERERkYIwOSMiIiJSECZnRERERAqikauimJgYrFixAgaDAUFBQejRo4fR9L1792L16tVwdXUFAISEhCAoKEiu8IiIiIgUQZbkzGAwYPny5fjoo4/g5uaG999/H76+vqhcubJROX9/fwwbNkyOkIiIiIgUSZafNS9duoSKFSvCw8MDGo0G/v7+OH78uBxVExEREb1QZOk5S01NhZubmzTs5uaG+Pj4POWOHj2Kc+fOoVKlShg8eDDc3d3lCI+IiIhIMWRJzoQQecapVCqj4RYtWqBt27bQarXYsWMHFi5ciLCwsDzzRUZGIjIyEgAwY8YMWRK4WyoVtFqtxetRMhXbgG0AtgHANgDYBgDbACh9bWBOPqHRaCySh8iSnLm5uSElJUUaTklJgYuLi1EZR0dH6X+9Xo+1a9fmuyy9Xg+9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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,6))\n",
    "p1 = plt.hist(bj, density=True, bins=np.arange(0, 0.4, 0.03), color='steelblue', alpha =0.5)\n",
    "p2 = plt.hist(gd, density=True, bins=np.arange(0, 0.4, 0.03), color='red', alpha = 0.5)\n",
    "plt.title('Distribution of Negative Comments Within 3 days When Beijing Haze')\n",
    "plt.xlabel('Sentiment Score')\n",
    "plt.ylabel('Density (%)')\n",
    "plt.legend(['Beijing', 'Guangdong'], title='City')\n",
    "plt.savefig('p1.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在小于0.2的区间里北京的占比要多一些，似乎更偏激的消极评论更容易出现。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "易烊千玺吖\n",
      "情绪分数： 0.5466165329737394\n",
      "马蓉还有超话。哈哈\n",
      "情绪分数： 0.4737672181921908\n",
      "Emmm\n",
      "情绪分数： 0.5\n",
      "真的非常牛逼这个大姐\n",
      "情绪分数： 0.45192593495698663\n",
      "自编自导自演厉害了我的姐\n",
      "情绪分数： 0.5027751325727445\n",
      " \n",
      "情绪分数： 0.5262327818078083\n",
      "能啊\n",
      "情绪分数： 0.5262327818078083\n",
      "卸了没什么用\n",
      "情绪分数： 0.4537736930444728\n",
      "我还以为是我手机有问题不支持这个软件原来如此\n",
      "情绪分数： 0.462755022585275\n",
      "人家只是在做自己他活的坦坦荡荡。\n",
      "情绪分数： 0.5084838970607746\n",
      "为什么觉得他说话时候的动作神态好像金星啊\n",
      "情绪分数： 0.5417920429155534\n",
      "差不多就是年过半百了\n",
      "情绪分数： 0.4538681162280954\n",
      "对\n",
      "情绪分数： 0.5262327818078083\n",
      "nc\n",
      "情绪分数： 0.5\n",
      "哪里diss别人了\n",
      "情绪分数： 0.5013490597296458\n",
      "呸\n",
      "情绪分数： 0.5262327818078083\n",
      "不是打黑工的应该是溜了\n",
      "情绪分数： 0.45381471560901976\n",
      "牧羊犬警告和你更配哦\n",
      "情绪分数： 0.521787401102477\n",
      "1126事变\n",
      "情绪分数： 0.4737672181921908\n",
      "当你拿得起\n",
      "情绪分数： 0.5262327818078083\n",
      "我也\n",
      "情绪分数： 0.5262327818078083\n",
      "假的\n",
      "情绪分数： 0.5\n",
      "我的电动车叫小白玻尿酸鸭玩偶叫黄胖一个靠枕叫snake\n",
      "情绪分数： 0.49247269928402937\n",
      "小猪猪\n",
      "情绪分数： 0.5025370734601784\n",
      " \n",
      "情绪分数： 0.5262327818078083\n",
      "好暖\n",
      "情绪分数： 0.5\n",
      "崩坏的世界线\n",
      "情绪分数： 0.4737672181921908\n",
      "哈哈\n",
      "情绪分数： 0.5262327818078083\n",
      "我相信\n",
      "情绪分数： 0.5262327818078083\n",
      "好好听啊\n",
      "情绪分数： 0.46175896454978704\n",
      "我相信\n",
      "情绪分数： 0.5262327818078083\n",
      "精忠报国和我相信都太好听了\n",
      "情绪分数： 0.5108792541690291\n",
      "想作的梦从不怕别人看见 在这里我都能实现 我相信我就是我 我相信明天\n",
      "情绪分数： 0.46380247559622734\n",
      "Colar \n",
      "情绪分数： 0.5\n",
      "为什么欺负狗子 大人不管呢\n",
      "情绪分数： 0.5017159890790982\n",
      "。。。\n",
      "情绪分数： 0.4843517138599106\n",
      "我们壳哥真好看\n",
      "情绪分数： 0.4674090251150007\n",
      "die了\n",
      "情绪分数： 0.5\n",
      "扎心了\n",
      "情绪分数： 0.5\n",
      "发财\n",
      "情绪分数： 0.5\n",
      "想要和YFJ在一起\n",
      "情绪分数： 0.5180297910986704\n",
      "你要笑死我吗\n",
      "情绪分数： 0.4913691286285672\n",
      "你是魔鬼吗\n",
      "情绪分数： 0.5454545454545455\n",
      "古天乐李绮红其他的都是什么山寨啊一点高级感都没有\n",
      "情绪分数： 0.4990738117349882\n",
      "  \n",
      "情绪分数： 0.5262327818078083\n",
      "平平无奇古天乐\n",
      "情绪分数： 0.5486976325915107\n",
      "  \n",
      "情绪分数： 0.5262327818078083\n",
      "哈哈啊哈哈\n",
      "情绪分数： 0.5262327818078083\n",
      "  你们家唉\n",
      "情绪分数： 0.5\n",
      "装修的人才不管什么季节呢\n",
      "情绪分数： 0.5435459719080087\n",
      "️是补救三季度的亏损吧\n",
      "情绪分数： 0.4614981767152663\n",
      "pimetheus我一直觉得她像仙女\n",
      "情绪分数： 0.4737672181921908\n",
      "是的\n",
      "情绪分数： 0.5262327818078083\n",
      "试过现在依然在\n",
      "情绪分数： 0.5316383365526676\n",
      "尝试过 很不爽\n",
      "情绪分数： 0.49253959087838584\n",
      "我为什么看到了内衣带子\n",
      "情绪分数： 0.5\n",
      "SzeKi\n",
      "情绪分数： 0.5\n",
      "666\n",
      "情绪分数： 0.5\n",
      "贤贤这颜值我吹爆\n",
      "情绪分数： 0.5009770621561728\n",
      "SlimMathersIII\n",
      "情绪分数： 0.5\n",
      "同\n",
      "情绪分数： 0.5262327818078083\n",
      "有点想Sunnee了啊\n",
      "情绪分数： 0.5180297910986704\n",
      "给自己吃\n",
      "情绪分数： 0.518716577540107\n",
      "转发\n",
      "情绪分数： 0.5\n",
      "是的\n",
      "情绪分数： 0.5262327818078083\n",
      "哪里来的小仙女\n",
      "情绪分数： 0.5025370734601784\n",
      "美人如画\n",
      "情绪分数： 0.5\n",
      "妹女\n",
      "情绪分数： 0.5174285365593035\n",
      "丫丫\n",
      "情绪分数： 0.5\n",
      "不能洗头\n",
      "情绪分数： 0.5133192708250794\n",
      "全了\n",
      "情绪分数： 0.5286738351254483\n",
      "劉敏 看看\n",
      "情绪分数： 0.5\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sh = snowanalysis(comment_sh)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAGHCAYAAABh+Fz8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl4THf///HXzCSyCxES1B77WlvR2mNrddOFKkVRt1ZVN9WVLlrV0o3bXtXNTauUWkpoVanW0lhiKUVFG2uoSARJPr8//DJfI4vJdhLJ83FdrsucOcv7vOfMmVfOnDnHZowxAgAAQJ6z53cBAAAARQXBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBK8cGDNmjMLCwvJk3j/++KNsNpuOHDmS7uPc9sknn8jDwyNP5p0d0dHR6tixo/z8/GSz2fK7nBw7dOiQbDabfv755/wuBXnM3fdSu3btNGjQoEzHyct9THa5U3dBVZjeh1dvG1dvd3n9mYHsI3hdpX///rLZbLLZbPLw8FBQUJBatmypV199VbGxsS7jPvPMM9q4caPb8w4LC9OYMWPcGrdVq1aKiYlRuXLlslL+NR05ckQ2m00//vijy/CePXvq77//ztVl5cSbb76p48ePKzIyUjExMemOk7pjueGGG5SQkODyXP/+/RUeHm5FqWmk9zpXqFBBMTExuummmyyp4ZdfflGPHj0UEhIib29vVatWTX369NHWrVstWX5+GjRokNq1a5ejecyaNUuenp6Ki4tzGd6gQYMMh/fr109S2vfS559/nu0/HrK6j8nIZ599piZNmqhkyZLy8fFR7dq1NWHCBF2Pl3E8f/68vL29NWXKFJfhEydOlM1mS3e4t7e3zp8/b2WZ6UrdZ6X+K1asmKpWraoXXnhBSUlJWZrX1dvG1dtdXn2GpCezkJef++KCiuCVjtatWysmJkaHDx/WunXrNHjwYM2dO1d169bVH3/84RzP399fwcHBub78ixcvqlixYgoNDZXdbs1L5OPjo5CQEEuW5Y59+/apefPmql69ukJDQzMdNzY2VuPHj7eosuxxOBwKDQ2Vp6dnni9r9uzZat26tTw9PfXFF19o9+7dmjdvnipXrqwnnngiz5dfGISHhyspKUlr1651Djt58qSioqJUtmzZNMN37typjh07Ssrd91Ju7WPKlCmjl19+WRs2bFBUVJRGjRqlV155RR9++GEuVGktHx8ftWzZUqtXr3YZvmbNGlWsWDHd4a1atZKPj4+VZWZq69atiomJ0b59+/T2229r0qRJeuutt7I0j6u3jau3O6s/Q5AFBi769etnOnbsmGb4v//+a6pWrWrat2/vHDZ69GhTrVo15+Po6GjTo0cPU6pUKePt7W2qVKlixo8fb4wxpm3btkaSy7+DBw+aH374wUgy3333nbn55puNl5eX+eijj5zDo6OjjTHG+Xjx4sWmWbNmxsvLy9SpU8esXLnSufyrp0nlcDjM7NmzjTEmTQ2VKlUyxhgze/Zs43A4XKZbunSpady4sSlWrJgpXbq0GTp0qDl37lyaXk2bNs1UrFjRBAQEmDvuuMMcP3480x6fPXvWPPLIIyY4ONh4eXmZJk2amO+//975/NU19uvXL935pK7viy++aHx9fc2RI0fS1HaluXPnmoYNGxovLy9TqVIl8+STT7qsT0JCghk8eLApXry4KVGihBk6dKgZNWqUy2u8ZcsW07VrV1O6dGnj5+dnmjZtapYvX+58PqPX+eDBg0aSWbdunTHGmFatWpnBgwenWafatWub5557zu2ar/b3338bLy8vM2TIkHSfj42Ndf5/z5495tZbbzV+fn7Gz8/PdO/e3ezbt8/5fOo2sWbNGlOvXj3j7e1t2rRpY/7++2+zdu1a06hRI+Pr62s6duzo0vvU98W8efNMWFiY8fHxMXfeeaf5999/zYIFC0yNGjWMv7+/ueeee8yZM2ey9Bq1bdvWDBw40Lz22msmJCTElCxZ0vTr1885zujRo9P0P3XbnzFjhqlVq5bx8vIyQUFBpnXr1mneK1eqVq2aGTFihPPxvHnzTIMGDcywYcPSDJfk7MGV76XUbTS97fla63JlL69+vGjRIlOzZk3j6+tr2rVrZ/bv35/hemTkrrvuMnfddVem4xw6dMh06dLFeHt7mwoVKpgPP/zQWXeqL774wjRv3twUL17clCpVytx6661m7969zufbtGmTZltPSUkxVatWNaNHjzbGGLNz507TuXNnExgYaHx9fU2tWrXMp59+mmFdr7/+ugkKCjLJycnGGGOSkpJM8eLFzYwZM9IdPnbsWGOMcb4P582bZ7p37258fHxMlSpV0iwrLi7ODB8+3JQrV874+PiYRo0amQULFjifd3c+V8toH92jRw9zxx13uAxbuXKladWqlfH29jblypUz/fv3NydPnnQ+f/W2cfU+PKPPkJUrV5rWrVsbHx8fU7t2bbNixQqX5W7dutXcdNNNxsvLy1SvXt189dVXplKlSub111/P8noZk3ZffK196OzZs9O8ZySZtm3bOsfZvHmz6dSpk/Hz8zPBwcHm7rvvNocOHcqwvoKG4HWVjIKXMca88847xmazOYPF1Rv+7bffbjp27Gh+//13c/DgQbNmzRrz5ZdfGmOMOXXqlKlcubJ5+umnTUxMjImJiTFJSUnODbZmzZrm22+/NQcOHDDR0dEZvmnCwsLMkiVLzK5du8zDDz9svL29nTt8d4LX1q1bjSSzYMECExMT41yXq9+027ZtMw6Hw4wYMcLs2rXLLFu2zFSoUMH06dPHpVfFixc3vXr1Mjt27DDr1683FStWNA899FCmPb733ntNpUqVzIoVK8yuXbvM8OHDjaenp9m9e7cxxpiYmBjTsmVL07t3bxMTE5PmwzlV6voeOnTI1K1b12W5V7+Os2fPNiVKlDCffvqp+fPPP83atWtN/fr1Xdbn8ccfN2XKlDHffvut2bNnjxk1apQpXry4y2v8ww8/mE8++cRERUWZvXv3mhdffNF4eno6P2gyep2vDl5Tp041gYGB5vz58855b9q0yUgyUVFRbtd8tffeey/DHeCVEhISTMWKFU2HDh3M5s2bzebNm027du1MtWrVzIULF5zLt9lspm3btmbjxo1my5YtJiwszNxyyy2mbdu25pdffjFbt241NWvWNPfff79z3qNHjza+vr7m1ltvNdu2bTM//vijCQ4ONp06dTLdunUzkZGR5qeffjJlypQxI0eOzNJr1LZtWxMYGGhGjBhhdu/ebZYvX24CAwPNK6+8Yoy5/IHZu3dv07JlS2f/ExISzObNm43D4TBz5swxhw4dMtu3bzczZszItE+PPPKIqV+/vvPxkCFDzIgRI8w333yTZnitWrVc1iP1vXThwgUzadIkI8lZT+r2fK11Se3l1cHL19fXdOnSxWzevNlERkaaRo0amTZt2mT6el8pJSXF/Prrr6Z06dLmgw8+yHS8G2+80TRt2tRs3LjR/P777yY8PNwEBAS4BK+PP/7YLFmyxOzfv99s3brV3H777SYsLMy5HX355ZfG39/fxMXFOaeJiIgwdrvd/PXXX8YYY+rXr28eeOABExUVZf7880+zbNkys2TJkgxr27Bhg5FktmzZYowx5pdffjFBQUHm0qVLpmTJki7DJZmNGzcaY/4vMFWpUsXMmzfP7Nu3zzz33HPG4XCYP/74w7ne7dq1M23btjXr1q0zf/75p5k2bZrx9PQ0ERERbs8nPentoyMjI01ISIgZN26cc9jq1auNj4+P+fDDD80ff/xhfvvtN9OuXTvTunVrk5KSYozJfvBq0KCBWb58ufnjjz9M3759TWBgoDl9+rQxxpj4+HgTGhpqunfvbrZt22Z++eUX07JlS+Pj45Nrweta+9CEhATneyUmJsZs2LDBBAQEmDFjxhhjjImKijJ+fn7mlVdeMbt37zbbt2839957r6levbrL/rQgI3hdJbPgtXz5ciPJ/Prrr8aYtBt+gwYNnH/BpadatWppnk/dYK/+SymjN83MmTOd41y6dMlUrFjRvPjii+lOk+rK4BUdHW0kmR9++MFlnKvftH369DHNmjVzGWfRokXGZrM5/7Lo16+fCQ4ONomJic5x3nrrLRMaGpphD/bt22ckmaVLl7oMv/HGG82AAQOcj6/+qzo9V67vihUrjM1mM5s3b3bWduXrWKlSJTNlyhSX6deuXWskmdjYWHPu3DlTrFgxl/4aY8xNN93k8hqnp0GDBuaNN95wPk7vdb46eJ0+fdp4e3ub//3vf85xHn/8cdO0aVO3a07P0KFDTfHixTOt1xhjZs6caXx8fMyJEyecw44ePWq8vb3NnDlzjDH/95fn77//7hxn/PjxRpKzz8YYM3HiRFOqVCnn49GjRxuHw+Ey70cffdTY7XaXo6HDhw83TZo0ydL6tm3b1iX0GHM5+LRo0cL5eODAgS5/HRtjzDfffGOKFy9u/v3332v2JtW8efOMzWYzx44dM8YYU716dfPtt9+aU6dOGYfD4TJ82LBhzumufi999tlnJr0vF9xZl/SCl8PhcOnj3Llzjc1mu+aHzpkzZ4yfn5/x9PQ0drvdvPrqq5mOv2rVKiPJ5ejV8ePHjbe3d6bvzVOnThlJ5ueffzbGXA6fwcHBZsaMGc5xevXqZW699Vbn4+LFizv3Ue64dOmSKV68uPMbhTfeeMPcfffdxhhj7rzzTpfhgYGBJikpyRjzf+/DCRMmuMzLz8/PTJ061Rhzeb/i5eWV5g++AQMGmDvvvNPt+aQndZ/l6+tr/Pz8TLFixYwk07NnT2eNxlzeNq488m2MMX/99ZfL+zG7wevKI3cxMTFGkvOo1/Tp042fn5/Luu/evdtIcit4pa7Xlf88PDwy/ExNdfU+NNWZM2dMnTp1zP333+8MnP369TM9e/Z0GS8xMdH4+PiYhQsXZrqcgoIvf7PA/P8TUTM6UXbEiBF68803ddNNN+m5557TTz/95Pa8mzdv7tZ4LVu2dP7fw8NDzZs3165du9xejruioqLUpk0bl2Ft27aVMcZlebVr15aXl5fzcfny5XXs2LEM55s67dXzbtOmjaKiorJdb5cuXdSlSxc99dRTaZ47ceKE/vrrLz311FPy9/d3/uvWrZskaf/+/dq/f78uXryoFi1auEx7Zb9T5/Xoo4+qVq1aKlGihPz9/RUVFaW//vorS/WWKFFCt99+uz799FNJUlJSkv73v/85T9B2p+b0pG6j1xIVFaU6deq4nCMSEhKimjVrurwONptN9evXdz5OPd+uQYMGLsNOnTql5ORk57Dy5cu7zDs0NFShoaEqXbq0y7Djx49neX0bNWrksi7X2uYkqVOnTqpataqqVKmiXr16afr06Tp58mSm03To0EGStHr1ah05ckQHDhxQ27ZtFRQUpAYNGjiH79u3L9snD2dnXcqVK+fSx/Lly8sY4+xlRgICAhQZGanNmzdr8uTJeu+99zRz5swMx9+1a5eCg4NVo0YN57DSpUurZs2aLuNFRkbq7rvvVpUqVRQQEKCKFStKkvM9UaxYMfXv318zZsyQJJ06dUoLFy7U4MGDnfN45plnnD+KGDNmzDV/BOLh4aE2bdooIiJC0uXzuFJfrw4dOrgMb9++vRwOh8v0V/bdw8NDISEhzr5v2rRJFy9eVPny5V22xc8//1z79u1zez6Z+f777xUZGalt27Zp0aJF2rJliwYOHOh8ftOmTXr//fddll+nTh1JSlNDVl1Zc2hoqBwOh7PmXbt2qXbt2goMDHSOk7qvc0fqel3574477nAZx919aHJysnr27KnixYtrzpw5zs/dTZs2aeHChS69KVWqlBITE3PcG6sUnOsHXAd27twpm82mqlWrpvv8gAED1LVrV61YsUI//PCDunXrprvvvluff/75Neft5+eXrZqu/KBNPYnyymHJyclKSUnJ1rwzCphXDi9WrFia59z98L+SMSbHl42YMGGCGjZsqAULFrgMT13/Dz74QO3bt08z3Q033KC9e/dKynidU/Xv31+HDx/W+PHjVaVKFfn4+KhXr166ePFiluvt16+f7rrrLh07dky//fabzpw5o169erldc3pq1qyps2fP6siRIxmOkyq9db36dbDb7S4fWqnPXfkjgdRhV77uV/+IwGazpTssdT2zsr7pbXPX2sb9/f21efNmrV+/XhEREZo6dapGjhyp1atXq0mTJulOExwcrIYNG2r16tW6ePGiGjdu7PxAat++vXO4w+HI9q8os7Mu6U0j6ZrT2e125+UHGjRooNOnT+ull17K8NIQ7rwnExIS1LlzZ91yyy36+OOPncG8bt26Lu+JIUOGaMKECdq+fbvWrFmjoKAgde/e3fn8yy+/rAcffFArVqzQmjVr9Oabb2rkyJF64403Mlx2eHi4XnjhBZ09e1YbNmzQRx99JOnya/P88887h7/zzjtpps2s7ykpKQoMDNSmTZuuOV12Xj9Jqly5snObrlWrlhISEtS7d2+9/PLLqlatmlJSUvTcc8+pb9++aaa91o+NruXqmiXXbScn++Er1ytVQECA/v33X+djd/ehw4cP1969e/Xrr7/K29vbpda+fftq1KhRaZZfqlSpbNduJY54uens2bOaMmWKOnbsmOmLW7ZsWQ0YMECffvqpZs2apS+++EJnz56VdHmDv/KoQHZc+fPhpKQkbdq0SbVr15Z0+ZdLkvTPP/84x4mMjHT5QEx9012rjrp167r8ckuS1q5dK5vN5vzLKzvq1q0rSWmOBq5bt875XHbVqVNHgwcP1nPPPefyJg4JCVGFChW0d+9ehYWFpfnn7e2tsLAwFStWTL/88ovLPK/+Kf9PP/2kRx99VHfccYfq16+vsmXL6sCBAy7juPs6d+nSRaVKldKXX36pzz77TLfddpvzKJE7Nafnvvvuk5eXV4YfWKdPn5Z0+XWIiopyOepz7Ngx/fHHHzl+HbIju+ubnoz673A41KZNG7322mvasmWLypYtqy+//DLTeXXs2FGrV692OaIi/V/wWrNmjZo2bepyhCC9eqRrv+eslpKSogsXLmT4fN26dXXixAmXowgnT550+WX37t27deLECY0dO1bt27dX7dq1dfr06TR/fIWFhalDhw6aMWOGZs6cqQEDBqS51lnVqlX16KOP6uuvv9Zrr72W5rIQV+vYsaMSEhI0ceJElShRwrlfqlevnvz8/DRx4kQlJiZm+Whk06ZNdebMGSUmJqbZDlOP5uW21F6kXvKiadOmioqKSve94O/vnyc1SJf3obt373YJSnv37tWZM2dybRnu7EM//PBDffHFF1q6dKnzcy1V06ZNtX37dlWrVi1Nb0qWLJlrdeYlglc6Ll68qKNHjyomJka7du3Sxx9/rObNm+vChQuZ7gyGDRumZcuW6c8//1RUVJS++eYbVahQQQEBAZKkKlWqaP369Tp8+LBOnjyZrSNR48aN07Jly7R7924NHTpUx44d09ChQyVd3rlVqlRJY8aM0Z49e/Tzzz/rySefdPkLJjg4WP7+/lq5cqWOHj3q/CC+2rPPPqutW7fqqaee0p49e7RixQo9/vjjevDBB3O086lWrZruu+8+Pfroo/r++++1Z88ePfHEE9q5c6eeffbZbM831WuvvaaTJ09q0aJFLsPHjh2rDz/8UG+88YZ27typvXv3atGiRRoyZIiky0cchwwZopdeeknfffed/vjjD7344ovavXu3S/9q1qypL774Qjt27FBkZKQeeOCBNB+o7r7OHh4e6t27t6ZPn64lS5booYceylLN6SlfvrwmTZqkGTNmqFevXlq9erUOHTqkrVu3avTo0brzzjslSb1791bp0qXVs2dPbd26VVu2bFGvXr1Uvnx59ezZ0/2G56LsrG96qlSpoj179jiD5YULF/Ttt9/qvffe05YtW3T48GEtWrRI0dHR1/wjomPHjjp06JAWLlzoErzatGmj6OhoLVy40HkZiczqkaTFixfrxIkTOnfuXJbWJzeMHj1aEREROnDggPbu3asZM2bo7bffTrPNXaljx45q2LCh+vTpo99++02RkZF68MEHXQJTpUqV5OXlpY8++kh//vmnVq9erSeeeCLdoyZDhgzR9OnTtWvXLpejbOfOndNjjz2mNWvW6ODBg/r999+1YsWKa7429erVU0hIiCZOnOhylNRms6ldu3aaOHGiypcvr1q1amWlVerQoYPCw8PVo0cPLVy4UAcOHNCWLVv00UcfOb8uzakTJ07o6NGjOnLkiNasWaMxY8aoVq1azlpfe+01ffvtt3ryyScVGRmpP//8UytWrNDAgQPz9HpkDz74oPz9/fXQQw9p+/bt+vXXXzVw4ED5+Pjk2oWsr7UPXb16tZ5++ml99NFHCgoK0tGjR3X06FHndTRfeOEF7d6927ldHjx4UD/88IOeeOKJNAGuoCJ4pWPdunUqW7asKlSooJtvvlnTp09X7969tXPnzkyvIm2M0YgRI1SvXj21adNG8fHxWr58uXODffXVV/Xvv/+qZs2aKl26tA4fPpzl2t599129/PLLatSokdavX69vv/3WeWjXw8ND8+bN0/Hjx3XjjTfqscce09ixY12u42K32zV58mTNnz9fFSpU0I033pjucho0aKDFixdr7dq1atiwofr27avbbrtNU6dOzXLNV5s5c6a6dOmiPn36qGHDhlq/fr2+++67LO8g0xMcHKyXXnopzc6pb9++mj9/vpYuXarmzZurWbNmGjNmjMqXL+8c5+2339btt9+u3r17q3nz5jp9+rT69+/vcrRl9uzZSklJUfPmzXXXXXepa9euatasmcuysvI69+vXT3v27JGvr69uu+22LNecnkGDBmnt2rVKTEzUAw88oJo1a+ree+/VwYMHnddt8vHx0cqVK+Xl5aU2bdqobdu28vPz04oVK9L9KsIK2V3fqw0cOFDNmjVTq1atVLp0ac2dO1clS5bUkiVL1LVrV9WoUUMjR47USy+9pIcffjjTebVp00aenp5KTEzULbfc4hxevHhxNWnSRHFxcdc8otKsWTM98cQT+s9//qOQkBANGzYsS+uTG86ePav//Oc/qlu3rlq0aKGpU6fqrbfe0sSJEzOcxmazadGiRQoMDFSbNm3UvXt33XrrrWrcuLFznODgYH3++edatWqV6tatq2eeeUbvvvtuuteOuuuuuxQYGKhOnTo5w6h0eb91+vRpDRw4ULVr11aXLl0UEhJyzaOR0uWQFBcX5xKKpctHJOPi4q4ZijNa78WLF6tHjx566qmnVKtWLd12221aunSpqlWrluX5padx48YqW7asKlWqpIceekhNmjTRihUrnKG2ffv2WrNmjXbs2KHWrVurQYMGevLJJxUQEJCn1wL09fXVsmXLdOzYMTVr1kx9+vTRiBEj5O/vn6Wjzpm51j503bp1SkpK0kMPPaSyZcs6//Xo0UPS5fOKN2zYoHPnzqlLly7ObzrOnz/v9rlo+c1msnNCDlBEdOjQQSVLlkxz3hiArImNjVX58uX1+eef65577snvcgqdadOm6bnn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nTqlrVu3qkePHvruu++sWiwA5JmACRPyu4QMxT39dH6XACAdlgWvTz75RH369Mn0aFdERIQiIiIkSePGjUtzYvqxY8fk4ZG7Jef2/K4HqdcKky6v/9V9LmroAT2QstcDRy6ec5rbvLLxerIdFOwe+Pr+a8ly7HZ7rp5Pnd+y83rm5XZgSerYsmWLAgMDVbVqVUVFRWU4Xnh4uMLDw52Prz6x7cKFC3I4HLlWl9Un1xcUFy5ccPa2IJ9IahV6QA+k7PUgoACfgByXjdeT7aBg98CqE94L28n12Xk9r/uT6/fu3avNmzfr999/18WLF3X+/Hl9+OGHGj58uBWLBwAAKBAsCV69e/dW7969JUlRUVFasmTJdRu6PvjgAy1atEgOh0M2m01vv/22hg4dquXLlysoKCjPljtixAiFh4ere/fubk9zxx13aPHixXlWE4CCKzuXHvD1/deSIx3Z+Xk/UFhc1yc45fTEVrvdrpSUFOfja52MunnzZkVERGjFihXy8vJSbGysLl68mKMa8hKhCwCAgsXy4FW3bl3VrVvX6sXmiuPHjysoKMh5X8Urj3B9/PHHWrVqlZKSkjRt2jSFhYXp999/1+jRo5WYmChvb29NnDhRYWFhmjdvnlatWqXz58/r0KFD6tatm1566SVJ0ty5czV58mSFhoaqSpUqKlasmMaOHStJ+vXXXzV9+nSdOHFCL774orp37674+HgNGDBA//77r5KSkjRy5Eh16dJFklS9enXt27fP4i4BAICMcK/GLGjbtq3++ecf3XLLLXr++ef1yy+/OJ8LCgrS999/r759+2rq1KmSpLCwMH3zzTdauXKlnnnmGb399tvO8aOiojRlyhStXr1aixcv1t9//62jR4/q/fff15IlSzR37lzt37/fZfnHjh3TokWLNGfOHL311luSLv9CcdasWfr+++/11Vdf6bXXXuPm2gAAFFDX9VeNVvPz89OKFSv066+/asOGDRo6dKief/55SVK3bt0kSQ0aNNDy5cslSWfPntWIESN08OBB2Ww2Xbp0yTmvW265RcWLF5ck1ahRQ3///bdiY2PVokULlSxZUpLUvXt3HThwwDlN165dZbfbVaNGDZ04cULS5ftFjhs3Tr/++qtsNpuOHj2qEydOqEyZMnnfEAAAkCUEryxyOBxq1aqVWrVqpVq1aumrr76SJOfXjw6HQ8nJyZKkd955R61atdKsWbMUHR2te++91zmfYsWKOf9vt9uVlJR0zSNVV06TOu4333yjU6dOafny5fL09NRNN92kCxcu5M7KAgCAXMVXjVmwf/9+lyNQUVFRuuGGGzIcPy4uTqGhoZKk+fPnX3P+jRo10saNG3XmzBklJSVp2bJl15wmLi5OwcHB8vT01Pr163XkyBE31gQAAOQHjnhlQUJCgl566SWdPXtWHh4eqly5ssaPH++82v7Vhg4dqhEjRmj69Om6+eabrzn/smXL6vHHH1f37t0VGhqq6tWrKyAgINNpevTooX79+qlbt26qW7euwsLCsrVuAAAg79lMAT4T+59//nF5nJCQkKu3MSiIV66Pj4+Xn5+fkpKSNHDgQPXq1ct5/lhuubKPBfkqzVahB/RAyuaV6wvwvRo/a987y9NYdcXygnwdr4L8XsjOtdmyo7BduT4729t1f+V6uG/ChAlat26dLly4oLZt26pr1675XRIAAMglBK8C5pVXXsnvEgAAQB7h5HoAAACLXFfBqwCfjnZdoY8AAOSP6yp4pV7vCtmXlJQku/26etkBACg0rqtzvLy9vZWYmKgLFy7IZrPleH5eXl5F6mKjxhjZ7XZ5e3vndykAABRJ11Xwstls8vHxybX5FeSfDQMAgMKH75wAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAs4pHfBQBFRcCECfldQsbeeiu/K8iQVX1z+PoqICHBkmUBKLo44gUAAGARghcAAIBFCF4AAAAWIXgBAABYhOAFAABgEYIXAACARQheAAAAFiF4AQAAWITgBQAAYBGCFwAAgEUIXgAAABYheAEAAFiE4AUAAGARghcAAIBFCF4AAAAWIXgBAABYhOAFAABgEYIXAACARTzyuwAAQNGyaGtMfpeQoUGdg/O7BBRyHPECAACwCMELAADAInzVCADA/+d4/XUFJCTkdxnpa987vytALuCIFwAAgEUIXgAAABax5KvGixcvavTo0UpKSlJycrJatGih+++/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ac2aNUutWrXK0+IAAAAKE7eCV+/evVWmTBk9/fTTSkhI0PDhw1WyZEndd999eV0fAABAoeH2V439+/dX//79nV8xpp7rBQAAAPe4FbyOHDmi3bt369y5c/L391ft2rW56jwAAEAWZRq8jDGaMmWK1q5dq1KlSqlkyZKKjY3V6dOn1aZNGw0dOpQjXwAAAG7KNHhFRERo165dGjt2rMstfvbv368PPvhAq1atUufOnfO8SAAAgMIg05Prf/rpJw0YMCDNfRXDwsLUv39/rVu3Lk+LAwAAKEwyPeJ15MiRDO/TWKdOHU2aNClPigKya9HWmCxP4+v7ryX33Oub50sAABR0mR7xSklJkY+PT7rP+fj4pLmoKgAAADKW6RGv5ORk7dy5M8PnCV4AAADuyzR4BQYGasqUKRk+X7x48VwvCAAAoLDKNHhNnjzZqjoAAAAKPbduGQQAAICcI3gBAABYhOAFAABgEYIXAACARQheAAAAFiF4AQAAWITgBQAAYJFMr+MFIPfsiYnL7xIy1Liab36XcF0qyK8pgIKJI14AAAAWIXgBAABYhOAFAABgEYIXAACARQheAAAAFiF4AQAAWITgBQAAYBGu44Usa/bltPwuIUObeg/J7xIAAMgQR7wAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAsQvACAACwCMELAADAIh75XQCA/LfjcKwuXbqU32UAQKHHES8AAACLELwAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsIiHFQv573//q61btyowMFATJkywYpEAAAAFjiVHvNq1a6cXXnjBikUBAAAUWJYErzp16sjf39+KRQEAABRYlnzV6K6IiAhFRERIksaNG6fg4OA8Xd4Jm02enp55uoyCzlbIeuDr65vlaex2e7amy6qC3OfCth1kBz2gBxI9kApfD7KTJTw8PPIsgxSo4BUeHq7w8HDn45MnT+bp8owxunTpUp4uo6Dz9PQsVD1ISEjI8jS+vr7Zmi6rCnKfC9t2kB30gB5I9EAqfD3ITpYIDg7O8nTlypVzazx+1QgAAGARghcAAIBFLPmq8f3339euXbsUFxen//znP7r//vvVoUMHKxYNAABQYFgSvEaMGGHFYgAAAAq0AnVyPZBTzb6cluVpCtuJpACAgotzvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALAIwQsAAMAiBC8AAACLELwAAAAsQvACAACwCMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBCwAAwCIELwAAAIsQvAAAACxC8AIAALCIh1ULioyM1OzZs5WSkqKOHTvqrrvusmrRAAAABYIlR7xSUlI0a9YsvfDCC3rvvfe0fv16HTlyxIpFAwAAFBiWBK/9+/crNDRUISEh8vDwUKtWrbRp0yYrFg0AAFBgWBK8YmNjVapUKefjUqVKKTY21opFAwAAFBiWnONljEkzzGazpRkWERGhiIgISdK4ceNUrly5PK2r3JzJeTp/AABwfcqrDGLJEa9SpUrp1KlTzsenTp1SyZIl04wXHh6ucePGady4cVaUpVGjRlmynIKMHtADiR5I9ECiBxI9kOiBlLc9sCR4VatWTTExMTp+/LiSkpK0YcMGNW3a1IpFAwAAFBiWfNXocDj08MMPa+zYsUpJSVH79u1VoUIFKxYNAABQYDjGjBkzxooFlS1bVt26ddOtt96q2rVrW7FIt1StWjW/S8h39IAeSPRAogcSPZDogUQPpLzrgc2kd+Y7AAAAch23DAIAALCIZbcMstq1blF06dIlTZo0SQcOHFBAQIBGjBihMmXKSJIWLlyoNWvWyG63a8CA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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,6))\n",
    "p1 = plt.hist(bj, density=True, bins=np.arange(0, 0.4, 0.03), color='steelblue', alpha =0.5)\n",
    "p2 = plt.hist(sh, density=True, bins=np.arange(0, 0.4, 0.03), color='red', alpha = 0.5)\n",
    "plt.title('Distribution of Negative Comments Within 3 days When Beijing Haze')\n",
    "plt.xlabel('Sentiment Score')\n",
    "plt.ylabel('Density (%)')\n",
    "plt.legend(['Beijing', 'Shanghai'], title='City')\n",
    "plt.savefig('p2.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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zJgxJiwszPj4+JgmTZqYL774wv6+s/O5Xk776F69epl7773XYdiKFStM27Ztjbe3twkLCzODBw82p06dsr9//bZx/T48p++QFStWmPbt2xsfHx9Tr149s3z5cod2t27dalq1amW8vLxMrVq1zH//+19TtWpV8+qrr+Z7uYzJui/Oax86f/78LJ8ZSaZjx472cTZv3my6du1q/Pz8TGhoqPnLX/5iDh06lGN9RQ3B6zo5BS9jjHnzzTeNzWazB4vrN/x77rnHREZGml9//dUcPHjQrFq1yixcuNAYY8zp06fNbbfdZp5++mmTkJBgEhISTFpamn2DrVOnjvnqq6/Mb7/9Zg4fPpzjh6ZmzZrm66+/NvHx8Wbo0KHG29vbvsN3Jnht3brVSDJffPGFSUhIsC/L9R/abdu2GXd3dzNu3DgTHx9vli1bZipXrmz69+/vsK4CAwNN3759zY4dO8z69etNlSpVzMCBA3Ndxw888ICpWrWqWb58uYmPjzdjxowxnp6eZteuXcYYYxISEkybNm1Mv379TEJCQpYv50yZy3vo0CFTv359h3av78f58+eb0qVLmw8//NAcOHDArFmzxjRs2NBheZ544glTrlw589VXX5ndu3ebiRMnmsDAQIc+Xr16tfnggw9MXFyc2bNnj3nhhReMp6en/Ysmp36+PnjNnj3bBAUFmeTkZPu8f/nlFyPJxMXFOV3z9d56660cd4DXSkpKMlWqVDFdunQxmzdvNps3bzadOnUyNWrUMJcvX7a3b7PZTMeOHc3GjRvNli1bTM2aNc0dd9xhOnbsaH766SezdetWU6dOHfPggw/a5z1p0iTj6+tr7rrrLrNt2zbzww8/mNDQUNO1a1dz5513mtjYWLN27VpTrlw5M2HChHz1UceOHU1QUJAZN26c2bVrl/n2229NUFCQ+dvf/maMufqF2a9fP9OmTRv7+k9KSjKbN2827u7uZsGCBebQoUNm+/btZs6cObmup0cffdQ0bNjQ/nrEiBFm3Lhx5n//+1+W4XXr1nVYjszP0uXLl82MGTOMJHs9mdtzXsuSuS6vD16+vr6me/fuZvPmzSY2NtY0adLEdOjQIdf+vlZGRobZtGmTKVu2rPnnP/+Z63i33367ad68udm4caP59ddfTVRUlAkICHAIXv/+97/N119/bfbv32+2bt1q7rnnHlOzZk37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p6crIyPjhuadU8C8dnipUqWyvOfsl/+1jDE3fduI6OhoNW7cWF988YXD8Mzl/+c//6nOnTtnma5SpUras2ePpJyXOdPgwYP1xx9/6I033lC1atXk4+Ojvn376sqVK/mud9CgQbr//vt1/Phx/fzzzzp37pz69u3rdM3ZqVOnji5cuKAjR47kOE6m7Jb1+n5wc3Nz+NLKfO/aHwlkDru236//EYHNZst2WOZy5md5s9vm8trG/f39tXnzZq1fv14xMTGaPXu2JkyYoJUrV6pZs2bZThMaGqrGjRtr5cqVunLlipo2bWr/QurcubN9uLu7+w3/ivJGliW7aSTlOZ2bm5v99gONGjXS2bNn9eKLL+Z4awhnPpNJSUnq1q2b7rjjDv373/+2B/P69es7fCZGjBih6Ohobd++XatWrVJwcLB69uxpf/+ll17Sww8/rOXLl2vVqlX6+9//rgkTJui1117Lse2oqCg9//zzunDhgjZs2KB3331X0tW+ee655+zD33zzzSzT5rbeMzIyFBQUpF9++SXP6W6k/yTptttus2/TdevWVVJSkvr166eXXnpJNWrUUEZGhp599lkNGDAgy7R5/dgoL9fXLDluOzezH752uTIFBATo/Pnz9tfO7kPHjBmjPXv2aNOmTfL29naodcCAAZo4cWKW9kNCQm64ditxxMtJFy5c0KxZsxQZGZlr51asWFFDhgzRhx9+qHnz5umTTz7RhQsXJF3d4K89KnAjrv35cFpamn755RfVq1dP0tVfLknS0aNH7ePExsY6fCFmfujyqqN+/foOv9ySpDVr1shms9n/8roR9evXl6QsRwPXrVtnf+9GRUREaPjw4Xr22WcdPsTly5dX5cqVtWfPHtWsWTPLP29vb9WsWVOlSpXSTz/95DDP63/Kv3btWo0aNUr33nuvGjZsqIoVK+q3335zGMfZfu7evbtCQkK0cOFCffTRR7r77rvtR4mcqTk7vXv3lpeXV45fWGfPnpV0tR/i4uIcjvocP35ce/fuvel+uBE3urzZyWn9u7u7q0OHDnrllVe0ZcsWVaxYUQsXLsx1XpGRkVq5cqXDERXp/4LXqlWr1Lx5c4cjBNnVI+X9mbNaRkaGLl++nOP79evX18mTJx2OIpw6dcrhl927du3SyZMnNWXKFHXu3Fn16tXT2bNns/zxVbNmTXXp0kVz5szR3LlzNWTIkCz3OqtevbpGjRqlzz//XK+88kqW20JcLzIyUklJSZo+fbpKly5t3y81aNBAfn5+mj59ulJSUvJ9NLJ58+Y6d+6cUlJSsmyHmUfzClrmusi85UXz5s0VFxeX7WfB39+/UGqQru5Dd+3a5RCU9uzZo3PnzhVYG87sQ9955x198sknWrp0qf17LVPz5s21fft21ahRI8u6KVOmTIHVWZgIXtm4cuWKjh07poSEBMXHx+vf//63WrZsqcuXL+e6Mxg9erSWLVumAwcOKC4uTv/73/9UuXJlBQQESJKqVaum9evX648//tCpU6du6EjU1KlTtWzZMu3atUsjR47U8ePHNXLkSElXd25Vq1bV5MmTtXv3bv3444968sknHf6CCQ0Nlb+/v1asWKFjx47Zv4iv98wzz2jr1q166qmntHv3bi1fvlxPPPGEHn744Zva+dSoUUO9e/fWqFGj9N1332n37t0aO3asdu7cqWeeeeaG55vplVde0alTp7R48WKH4VOmTNE777yj1157TTt37tSePXu0ePFijRgxQtLVI44jRozQiy++qG+++UZ79+7VCy+8oF27djmsvzp16uiTTz7Rjh07FBsbq4ceeijLF6qz/ezh4aF+/frp/fff19dff62BAwfmq+bshIeHa8aMGZozZ4769u2rlStX6tChQ9q6dasmTZqk++67T5LUr18/lS1bVn369NHWrVu1ZcsW9e3bV+Hh4erTp4/zK7wA3cjyZqdatWravXu3PVhevnxZX331ld566y1t2bJFf/zxhxYvXqzDhw/n+UdEZGSkDh06pC+//NIheHXo0EGHDx/Wl19+ab+NRG71SNKSJUt08uRJXbp0KV/LUxAmTZqkmJgY/fbbb9qzZ4/mzJmjf/zjH1m2uWtFRkaqcePG6t+/v37++WfFxsbq4YcfdghMVatWlZeXl959910dOHBAK1eu1NixY7M9ajJixAi9//77io+PdzjKdunSJT3++ONatWqVDh48qF9//VXLly/Ps28aNGig8uXLa/r06Q5HSW02mzp16qTp06crPDxcdevWzc+qUpcuXRQVFaVevXrpyy+/1G+//aYtW7bo3XfftZ8uvVknT57UsWPHdOTIEa1atUqTJ09W3bp17bW+8sor+uqrr/Tkk08qNjZWBw4c0PLlyzVs2LBCvR/Zww8/LH9/fw0cOFDbt2/Xpk2bNGzYMPn4+BTYjazz2oeuXLlSTz/9tN59910FBwfr2LFjOnbsmP0+ms8//7x27dpl3y4PHjyo1atXa+zYsVkCXFFF8MrGunXrVLFiRVWuXFnt2rXT+++/r379+mnnzp253kXaGKNx48apQYMG6tChgxITE/Xtt9/aN9iXX35Z58+fV506dVS2bFn98ccf+a5t2rRpeumll9SkSROtX79eX331lf3QroeHhxYtWqQTJ07o9ttv1+OPP64pU6Y43MfFzc1NM2fO1GeffabKlSvr9ttvz7adRo0aacmSJVqzZo0aN26sAQMG6O6779bs2bPzXfP15s6dq+7du6t///5q3Lix1q9fr2+++SbfO8jshIaG6sUXX8yycxowYIA+++wzLV26VC1btlSLFi00efJkhYeH28f5xz/+oXvuuUf9+vVTy5YtdfbsWQ0ePNjhaMv8+fOVkZGhli1b6v7771ePHj3UokULh7by08+DBg3S7t275evrq7vvvjvfNWfnkUce0Zo1a5SSkqKHHnpIderU0QMPPKCDBw/a79vk4+OjFStWyMvLSx06dFDHjh3l5+en5cuXZ3sqwgo3urzXGzZsmFq0aKG2bduqbNmy+vTTT1WmTBl9/fXX6tGjh2rXrq0JEyboxRdf1NChQ3OdV4cOHeTp6amUlBTdcccd9uGBgYFq1qyZLl68mOcRlRYtWmjs2LF67LHHVL58eY0ePTpfy1MQLly4oMcee0z169dX69atNXv2bL3++uuaPn16jtPYbDYtXrxYQUFB6tChg3r27Km77rpLTZs2tY8TGhqqjz/+WN9//73q16+v8ePHa9q0adneO+r+++9XUFCQunbtag+j0tX91tmzZzVs2DDVq1dP3bt3V/ny5fM8GildDUkXL150CMXS1SOSFy9ezDMU57TcS5YsUa9evfTUU0+pbt26uvvuu7V06VLVqFEj3/PLTtOmTVWxYkVVrVpVAwcOVLNmzbR8+XJ7qO3cubNWrVqlHTt2qH379mrUqJGefPJJBQQEFOq9AH19fbVs2TIdP35cLVq0UP/+/TVu3Dj5+/vn66hzbvLah65bt05paWkaOHCgKlasaP/Xq1cvSVevK96wYYMuXbqk7t272890JCcnO30tmqvZzI1ckAPcIrp06aIyZcpkuW4MQP6cOXNG4eHh+vjjj/XXv/7V1eWUOO+9956effbZAj0tKF39kcRtt92mJUuW6J577inQed+quLge+P927NihrVu3qk2bNrpy5Yo++ugjrV69WsuWLXN1aUCxlZqaquPHj+vVV19VWFiY7r//fleXVOL8/vvvWrZsmcOvjW/Uxx9/rPDwcFWrVk2///67JkyYoKpVq6pbt24FUCkkghdgl/mctzFjxigjI0N169bVl19+ab+lAYD8W79+vTp37qxq1arpww8/zHJrB9y8mjVrqkGDBpo3b95Nz+v06dOaNGmS/vzzTwUHB6tdu3b673//63DbINwcTjUCAABYhIvrAQAALELwAgAAsAjBCwAAwCJF+uL6a+/AXhhCQ0PzfF4bXI9+Kvroo+KBfioe6KeiL7s+CgsLc2paS4LX0aNH9dZbb9lfnzhxQg8++GCWG0YCAACUZJYEr7CwMPuDSjMyMjRixAi1bNnSiqYBAACKDMuv8dqxY4cqVKigsmXLWt00AACAS1l+jdf69evVrl27G5rWGKOUlBRlZGQUyAM7jx8/rsuXL9/0fEoqY4zc3Nzk7e1dYA9IBQDgVmbpDVTT0tI0YsQIRUdHZ/swy5iYGMXExEiSpk6dqitXrji8f/r0aWVkZBTqQ0LhKDU1VW5ubgoJCXFZDR4eHkpLS3NZ+8gbfVQ80E/FA/1U9GXXR6VKlXJu2sIoKCe//vqrqlWrluMTxKOiohQVFWV/ff0vBhITE+Xn51dgGyQbd95sNpsuXbokVz7ggF/4FH30UfFAPxUP9FPRdzO/arT0Gq+bOc0oidNdLsJ6BwCgYFgWvC5fvqzt27erVatWVjVpmRMnTmjkyJFq27atOnXqpAEDBmjjxo0aPny4JGnnzp1auXKli6sEAACuZtmpRi8vL/373/+2qjnLGGM0bNgw9e7dW7NmzZJ0NWglJiZqzpw5kqS4uDht375dkZGRriwVAAC4GI8Muknr16+Xp6enBg4caB/WoEEDhYWFqUuXLrpy5YqmTZumJUuWqGvXrvrqq6/Url07nT59WtLV+5q1a9dOZ86ccdUiAAAAixTpRwYVB3v27FHDhg1zfL9UqVIaP368tm/frilTpkiSDhw4oP/9738aPny41q1bp4iICAUHB1tVMgAAcBGOeLlAnz599Pnnn0uS/vOf/+jBBx90cUUAAMAKBK+bVLt2be3YsSNf04SHh6ts2bL68ccf9euvv6pLly6FVB0AAChKONV4k+644w794x//0CeffKKHH35YkhQbG6vk5GT7OP7+/rp06ZLDdA899JDGjBmjv/71r3J3d7e0ZgAArLR4a4LL2r6/aUWXtZ0djnjdJJvNprlz52rt2rVq27atOnfurOjoaJUvX94+Ttu2bbVv3z77xfWS1K1bNyUmJqpPnz6uKh0AAFiMI14FoEKFCnrvvfeyDF+1apUkqUyZMlq2bJnDe/Hx8YqIiFDNmjUtqREAALgewcsFZsyYoQ8//FAzZsxwdSkAAMBCnGp0gdGjR+vnn39Wy5YtXV0KAABUEYZOAAAgAElEQVSwEMELAADAIgQvAAAAixC8AAAALELwAgAAsAjBK58qV66srl27KioqSt27d9cvv/yS5zT33nuvJOnYsWMaPny4JGnbtm166aWXCrVWAABQtBTr20nc7J1w3dzclJGRYX/tzN1tvb299f3330uSfvjhB02dOlVffPFFrtMsWbJE0tX7fc2ZM0eS1LhxYzVu3PhGSwcAAMUQR7xuwsWLFxUUFGR/PWvWLN11112KiorStGnT7MNr1aolSTp8+LD9uYwbNmzQwIEDJUnR0dF66qmn9MADD6hNmzaaN2+efdq33npLHTp0UN++fTVq1CjNnj3bikUDAACFoFgf8XKFlJQUde3aVZcvX9aJEyf02WefSZLWrFmjgwcPaunSpTLGaPDgwdq4caNat27t1Hz379+v//73v0pMTFT79u01cOBAxcfHa9myZfruu++Unp6u7t27q1GjRoW5eAAAoBARvPLp2lONmzdv1tixY7Vq1SqtWbNGa9asUbdu3SRJSUlJOnjwoNPBKzIyUl5eXvLy8lJoaKhOnjypn3/+Wd27d5ePj48kqWvXroWzUAAAwBIEr5vQvHlznTlzRqdPn5YxRqNHj9aAAQNuaF5eXl72/7u7uys9PV3GmIIqFQAAFAFc43UT9u/fr/T0dJUpU0adOnXSokWLlJiYKElKSEjQqVOnbmr+LVu21Pfff6+UlBQlJiZq5cqVBVE2AABwEY545VPmNV6SZIzR22+/LXd3d3Xs2FH79u2z3zrC19dX7777rkJDQx2mt9lsTrfVpEkTdevWTV27dlWlSpXUuHFjBQQEFNzCAAAAS9lMET6fdfToUYfXSUlJ8vX1LbD5e3h4KC0trcDml5ft27fr5ZdfzvP2E9dKTEyUn5+fkpOT1atXL73xxhtq2LBhIVaZVUGv9/wKDQ296aOHKFz0UfFAPxUPJbGfbvb2TzfDmVtF5Vd2fRQWFubUtBzxssi2bdv0+OOP6/nnn8/XdBMmTNDevXt1+fJl9e7d2/LQBQAACg7ByyKNGzfWjz/+mO/pZs6cWQjVAAAAV+DiegAAAIsQvAAAACxC8AIAALAI13gBAIBC1WLhe65rvOlk17WdDY545dPJkyf1+OOPq02bNurRo4fuueceffvtty6pJTo6modmAwBQjBTrI14B0dE3Nb2bm5syMjLsry8+/XSu4xtjNHToUPXu3dv+a8MjR45oxYoVN1UHAAC4NXDEKx9+/PFHlSpVSgMHDrQPq1SpkoYOHapFixbphRdesA8fOHCgNmzYIEmaOHGi7rzzTnXu3FnTpk2zj9OqVStNmzZN3bt3V2RkpPbv3y9JOn36tPr27avu3btrwoQJatmypc6cOSNJ+uc//6n27durT58+OnDggH1eO3fuVM+ePRUVFaVhw4bp3LlzkqQHHnhAU6ZM0d1336077rhDmzZtkiQlJydrxIgRioqK0mOPPaaePXtq27ZthbTmAACARPDKl71796pBgwb5nu7ZZ5/Vt99+q5iYGG3cuFHx8fH294KDg/Xdd99pwIAB9tOG06dPV7t27fTdd9/pzjvv1J9//inp6p3vlyxZohUrVmju3LkOQWncuHF64YUXFBMTo7p162r69On299LS0rR06VK9/PLL9uELFixQUFCQYmJiNG7cOG3fvv2G1gkAAHAewesmPP/884qKitJdd92V63hff/21unfvru7du2vPnj3at2+f/b0777xTktSoUSMdPnxYkvTzzz/rvvvukyR17txZpUuXliRt2rRJPXr0kI+PjwICAuzPjLxw4YLOnz+vNm3aSJJ69+5tP7IlyV5fo0aNdOTIkSxt1K1bV/Xq1bu5lQEAAPJUrK/xslrt2rW1bNky++u///3vOnPmjO688055eHg4XC92+fJlSdIff/yh9957T0uXLlXp0qU1btw4paSk2Mfz8vKSJLm7uys9PV3S1WvJcpKfh2xnKlWqlL2NzGdTFuFHdAIAUGJxxCsf7rjjDl2+fFkLFiywD0tOTpYkVa5cWXFxccrIyNCff/6p2NhYSdLFixfl4+OjwMBAnTx5UqtXr86z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Xl5eGjVqlKpXr577TE0Jl56ebkaPHm2OHTtmUlNTzfjx483hw4cdxlm9erWZO3euiyqEM3109OhR88wzz5iLFy8aY4w5d+6cK0q9pTnTT9datmyZmTlzpoUVwhjn+mn27Nnmu+++M8YYc/jwYTNq1ChXlHrLcqaPoqOjzerVq40xxuzYscO88847LqgUcXFx5sCBA+app57K9v0tW7aYKVOmmIyMDLNnzx7z3HPP5TnPEn+qkccVFX3O9NHKlSvVvXt3+fv7S5KCgoJcUeotLb+fpfXr1+uOO+6wsEJIzvWTzWZTUlKSJCkpKSnb+yqi8DjTR0eOHFHDhg0lSfXr19fmzZtdUeotLyIiwv69k53NmzerQ4cOstlsql27thITE3X27Nlc51nig5ezjyvatGmTxo8fr+joaJ06dcrKEm95zvTR0aNHlZCQoJdeekkvvPCCYmNjrb+LGkAAAAmGSURBVC7zlpefR3+dPHlSJ06cUIMGDawqD/+fM/3Uu3dvrVu3To899phef/11DR061Ooyb2nO9FHVqlW1adMmSdLPP/+s5ORkXbx40dI6kbczZ84oNDTU/tqZRyKW+OBlnHhcUbNmzTRz5kxNmzZNDRs21MyZPErISs70UUZGhhISEjRp0iSNHTtWs2fPVmJiolUlQs4/+ku6erSrdevWcnMr8buYIseZflq/fr06deqk2bNn67nnntO7776rjIwMq0q85TnTRwMGDFB8fLwmTJig+Ph4BQcHy93d3aoS4aT87Bczlfi9ojOPKwoICJCnp6ekq/fm+O233yyt8VbnTB8FBwerRYsW8vDwULly5RQWFqaEhASrS72lOfvoL+nqDyHatWtnVWm4hjP9tGrVKrVp00aSVLt2baWmpnI0xULO7vPGjx+vN954Qw899JAkydfX19I6kbeQkBCHs2S57Rczlfjg5czjiq49H7t582ZVqlTJ6jJvac70UcuWLbVz505J0oULF5SQkKDy5cu7otxblrOP/jp69KgSExNVu3ZtF1QJZ/opNDTU/nk6cuSIUlNTFRgY6Ipyb0nO9NGFCxfsRyG//PJLde7c2RWlIg/NmzfX2rVrZYzR3r175evrm2fwuiVuoLp161YtWLDA/riiXr16adGiRapRo4aaN2+uhQsXavPmzXJ3d5e/v78eeeQRhYeHu7rsW0pefWSM0YcffqjY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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,6))\n",
    "p1 = plt.hist(bj, density=True, bins=np.arange(0.5, 1.0, 0.03), color='steelblue', alpha =0.5)\n",
    "p2 = plt.hist(gd, density=True, bins=np.arange(0.5, 1.0, 0.03), color='red', alpha = 0.5)\n",
    "plt.title('Distribution of Negative Comments Within 3 days When Beijing Haze')\n",
    "plt.xlabel('Sentiment Score')\n",
    "plt.ylabel('Density (%)')\n",
    "plt.legend(['Beijing', 'Guangdong'], title='City')\n",
    "plt.savefig('p2.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "基于训练好的模型（建议训练一个靠谱的模型为优先，如果有足够的标注样本做深度学习模型是最好的。）和抓取的微博评论，可以进行多方面的分析，限于项目时间暂时到此，欢迎提出想法和意见。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
